home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
newlooklib.lha
/
newlook
/
createcheckbox.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-11
|
3KB
|
93 lines
/*
* CREATECHECKBOX.C
*/
#include "newlook.h"
extern void CopyMem(APTR,APTR,ULONG);
static SHORT hook_pairs[2*10]= {
7,5, /*.......................*/
10,8, /*................***....*/
12,8, /*...............**......*/
18,2, /*..............**.......*/
19,2, /*......***....**........*/
17,2, /*.......***..**.........*/
11,8, /*........*****..........*/
8,5, /*.........***...........*/
9,5, /*.......................*/
11,7 /*.......................*/
};
struct Gadget *CreateCheckbox(x,y,pn,id)
SHORT x,y;
BOOL pn;
USHORT id;
{
struct Gadget *g;
struct Border *b0, *b1, *c0, *c1;
ULONG UserHandle= SetNewLookHandle(PRIVATE_HANDLE);
if(g= (struct Gadget *)SmartAllocate(GADGETSIZE))
{
if(b0= CreateBorder(0,0,CHECKBOX_WIDTH,CHECKBOX_HEIGHT,FALSE))
{
if(b1= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(c0= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(c1= (struct Border *)SmartAllocate(BORDERSIZE))
{
CopyMem((APTR)b0, (APTR)b1, BORDERSIZE);
c0->LeftEdge = 0;
c0->TopEdge = 0;
c0->FrontPen = 0;
c0->BackPen = 0;
c0->DrawMode = JAM2;
c0->Count = 10;
c0->XY = &hook_pairs[0];
c0->NextBorder = b0;
c1->LeftEdge = 0;
c1->TopEdge = 0;
c1->FrontPen = 1;
c1->BackPen = 0;
c1->DrawMode = JAM1;
c1->Count = 10;
c1->XY = &hook_pairs[0];
c1->NextBorder = b1;
g->NextGadget = (struct Gadget *)NULL;
g->LeftEdge = x;
g->TopEdge = y;
g->Width = CHECKBOX_WIDTH;
g->Height = CHECKBOX_HEIGHT;
g->Flags = pn ? GADGHIMAGE|SELECTED : GADGHIMAGE;
g->Activation = GADGIMMEDIATE|RELVERIFY|TOGGLESELECT;
g->GadgetType = BOOLGADGET;
g->GadgetRender = (APTR)c0;
g->SelectRender = (APTR)c1;
g->GadgetText = (struct IntuiText *)NULL;
g->MutualExclude = (LONG)0L;
g->SpecialInfo = (APTR)NULL;
g->GadgetID = id;
g->UserData = (APTR)NULL;
MakePrivateHandlePublic(UserHandle);
return g;
}
}
}
}
}
if(UserHandle != PRIVATE_HANDLE)
{
SmartFreeAll(PRIVATE_HANDLE);
(void)SetNewLookHandle(UserHandle);
}
return (struct Gadget *)NULL;
}